'''
飘动的雪，一个动画
关闭跟踪，
每次画一个雪片，
每次完成雪片后，刷新屏幕，形成最终动画
'''
import turtle
import time


# 画三分之一的雪
def koch_1(size, n):
    if n == 0:
        turtle.fd(size)
    else:
        for angle in [0, 60, -120, 60]:
            turtle.left(angle)
            koch_1(size / 3, n - 1)


# 画整朵的雪
def koch(pos, size, n):
    turtle.pen()
    turtle.goto(pos)
    turtle.pendown()
    koch_1(size, n)
    turtle.right(120)
    koch_1(size, n)
    turtle.right(120)
    koch_1(size, n)
    turtle.right(120)


turtle.tracer(0)
turtle.hideturtle()
FPS = 30  # 每秒帧数
t = 1 / FPS  # 更新时间,一秒30帧
turtle.setup(800, 800)
x, y = 20, 400  # 雪花初始位置

while y > -380:
    turtle.clear()
    y -= 5
    koch((x, y), 30, 3)
    turtle.update()
    time.sleep(t)
turtle.done()
